爬虫 .content 和 .text 的用法区别 |
您所在的位置:网站首页 › content satisfied区别 › 爬虫 .content 和 .text 的用法区别 |
requests对象的get和post方法都会返回一个Response对象,这个对象里面存的是服务器返回的所有信息,包括响应头,响应状态码等。其中返回的网页部分会存在.content和.text两个对象中。 .content中间存的是字节码 .text存的是.content编码后的字符串 一般来说 .text直接用比较方便 返回的是字符串 但是有时候会解析不正常导致 返回的是一堆乱码这时用.content.decode('utf-8')就可以使其显示正常。 总的来说.text是现成的字符串,.content还要编码,但是.text不是所有时候显示都正常,这是就需要用.content进行手动编码。
对requests获取的原始数据,有两种获取形式,一个是r.content一个是r.text。 二者的区别在于content返回的是byte型数据,而text返回的是Unicode数据,也就是说text对原始数据进行的特殊的编码,而这个编码方式是基于对原始数据的猜测(响应头), text一般用于返回的文本 content的一般用于对返回的其他数据类型 但是对于某些网站的中文用text可能会导致返回乱码,所以最好是使用content然后自己进行重新编码。
最终结论是:text 返回的是unicode 型的数据,一般是在网页的header中定义的编码形式。 content返回的是bytes,二级制型的数据。 也就是说你如果想要提取文本就用text 但是如果你想要提取图片、文件,就要用到content 举例说明: # 例如下载并保存一张图片 import requests jpg_url = 'http://img2.niutuku.com/1312/0804/0804-niutuku.com-27840.jpg' content = requests.get(jpg_url).content with open('demo.jpg', 'wb') as fp:
|
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |